package com.lcc.controller;

import com.lcc.util.QRCodeGenerator;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.UUID;

@RestController
public class QRCodeController {

    @RequestMapping("/qrcode")
    public String qrcodeImage() {
        //需要生成为二维码的文本
        String text="https://www.baidu.com/";
        //利用UUID生成唯一的图片名称,格式为"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.扩展名"
        String orderNo= UUID.randomUUID().toString().replace("-","");
        // 这里可以根据实际需要选择图片的扩展名，例如 "jpg", "png" 等
        orderNo+=".jpg";
        // 生成二维码的最终保存地址
        String baseDir = "src/main/resources/png/"; // 相对于项目根目录的路径
        Path path = Paths.get(baseDir, orderNo);
        // 确保目录存在
        try {
            Files.createDirectories(path.getParent());
        } catch (IOException e) {
            System.out.println("创建目录失败!");
            e.printStackTrace();
            return "error";
        }
        try {
            QRCodeGenerator.generateQRCodeImage(text, 350, 350,  path.toString());
        } catch (Exception e) {
            System.out.println("生成失败!");
            e.printStackTrace();
        }
        System.err.println("图片生成成功!地址为："+path.toString());
        return path.toString();
    }

    /**
     * 生成二维码Base64回传给前端
     * 访问https://tool.jisuapi.com/base642pic.html将Base64转为图片
     * @return
     */
    @RequestMapping("/qrcode/base64")
    public String qrcodeBase64() {
        String text="https://www.baidu.com/";
        String message = "";
        try {
            message = QRCodeGenerator.writeToStream(text, 350, 350);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return message;
    }
}
